Hangman
A terminal-based Hangman game that selects a random word and challenges the player to guess it letter by letter before running out of lives. Demonstrates string manipulation, list operations, and basic control flow in Python.
Overview
Problem
I wanted a first portfolio project that honestly represented where I started, not just where I ended up. Most developers hide their early work — I wanted to show the full arc.
Solution
Built the game twice. The original stays exactly as written during the course — no cleanup. The advanced rebuild introduces a richer, more capable version of the same game: a HangmanGame class managing the full game logic, a WordBank class with JSON-persisted custom categories, animated ASCII art, color-coded letter tracking, difficulty levels, a hint system, and a play stats tracker saved between sessions.
Challenges
The biggest challenge in the advanced rebuild was designing clean separation of concerns across six modules while keeping the code readable for someone who might inspect it. Managing ANSI escape codes for in-place terminal animation (line-by-line hangman drawing, flashing win banner, typewriter effects) without corrupting the layout took significant iteration.
Results / Metrics
Two fully playable versions of the same game that together tell a clear story of growth. The project demonstrates not just Python fundamentals, but the ability to revisit earlier work with a critical eye and rebuild it at a significantly higher level.
Screenshots
Click to enlarge.
Click to enlarge.